import axios, { AxiosResponse } from "axios"
import baseUrl from './baseUrl'
import { message } from 'antd'
// 创建axios实例
const http = axios.create({
	baseURL: baseUrl,
	timeout: 3000,
});
// 添加请求拦截器
http.interceptors.request.use(function (config) {
	if (localStorage.getItem("token")) {
		config.headers["Authorization"] = localStorage.getItem("token")
	}
	// 在发送请求之前做些什么
	return config;
}, function (error) {
	// 对请求错误做些什么
	console.log(error)
	return Promise.reject(error);
});
message.config({
	top: 0,
	duration: 2,
	maxCount: 2
})
const msgAlert = (msg: string) => {
	message.info(msg)
}

// 添加响应拦截器
http.interceptors.response.use((res: AxiosResponse) => {
	if (res.status === 200) {
		switch (res.data.status) {
			case -1:
				msgAlert(res.data.msg)
				break
			case -2:
				msgAlert(res.data.msg)
				break
			case 500:
				msgAlert(res.data.msg)
				break
			case 401:
				msgAlert(res.data.msg)
				window.location.hash = "/login"
				break
		}
		return res.data
	} else {
		return Promise.reject(res.data)
	}
}, (res) => {
	if (res.status === 500) {
		switch (res.data.status) {
			case -1:
				msgAlert(res.data.msg)
				break
			case -2:
				msgAlert(res.data.msg)
				break
			case -3:
				msgAlert(res.data.msg)
				break
			case -4:
				msgAlert(res.data.msg)
				break
			case -5:
				msgAlert(res.data.msg)
				break
			case -6:
				msgAlert(res.data.msg)
				break
			case 500:
				msgAlert('系统异常，请稍后重试或联系客服')
				break
			case 501:
				msgAlert('系统异常，请稍后重试或联系客服')
				break
			case 502:
				msgAlert(res.data.msg)
				break
			case 503:
				msgAlert(res.data.msg)
				break
		}
	} else {
		switch (res.status) {
			case 401:
				msgAlert(res.data.msg)
				break
			case 403:
				msgAlert(res.data.msg)
				break
			case 404:
				msgAlert(res.data.msg)
				break
			case 501:
				msgAlert('系统异常，请稍后重试或联系客服')
				break
			case 502:
				msgAlert('系统异常，请稍后重试或联系客服')
				break
		}
	}
	return Promise.reject(res.data.msg)
});
export default http